package com.solution.wx.share.entity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.google.common.collect.Lists;
import com.solution.common.entity.BaseEntity;
import com.solution.common.utils.string.StringUtil;

/**
 * 用户分享信息
 * @author xkl
 * @date 2018年5月3日 下午8:04:34
 */
public class ShareInfoEntity extends BaseEntity {
	private static final long serialVersionUID = 6038683381399878035L;
	
	/**
	 * 分享客户ID
	 */
	private Long shareUserId;
	/**
	 * 分享客户微信openId
	 */
	private String wxOpenId;
	/**
	 * 分享客户微信头像
	 */
	private String wxHeadImage;
	/**
	 * 分享类型
	 */
	private Integer shareType;
	/**
	 * 分享商品ID
	 */
	private Long sharedProductId;
	/**
	 * 分享模块ID
	 */
	private Long sharedModuleId;
	/**
	 * 分享标题
	 */
	private String shareTitle;
	/**
	 * 分享商品编码
	 */
	private String productCode;
	/**
	 * 分享商品类型
	 */
	private String productCategoryName;
	/**
	 * 分享商品图标
	 */
	private String sharedProductImagePath;
	/**
	 * 分享链接
	 */
	private String shareUrl;
	/**
	 * 分享状态
	 */
	private Integer shareStatus;
	/**
	 * 分享描述
	 */
	private String shareDesc;
	/**
	 * 分享数据内容
	 */
	private String shareDataUrl;
	/**
	 * 分享时间
	 */
	private Date ShareTime;
	/**
	 * 分享用户推荐码
	 */
	private String referralCode;
	/**
	 * UUID
	 */
	private String uuid;
	
	/**
	 * 关联字段-用户名
	 */
	private String userName;
	/**
	 * 关联字段-手机号
	 */
	private String mobile;
	/**
	 * redis查询-评论数量
	 */
	private Long commentQuantity;
	/**
	 * redis查询-点赞数量
	 */
	private Long likeQuantity;
	/**
	 * redis查询-收藏数量
	 */
	private Long favoriteQuantity;
	/**
	 * redis查询-分享数量
	 */
	private Long shareQuantity;
	/**
	 * redis查询-浏览数量
	 */
	private Long viewQuantity;
	/**
	 * redis查询-通过该分享引导注册的用户数量
	 */
	private Long registerQuantity;
	/**
	 * redis查询-UV浏览数量
	 */
	private Long uvViewQuantity;
	/**
	 * 关联字段-订单总数
	 */
	private Long shareOrderNum;
	/**
	 * 关联字段-销售总额
	 */
	private BigDecimal shareTotalMoney;
	/**
	 * 其他信息
	 */
	private Map<String, Object> extraInfo;
	/**
	 * redis查询-用户是否点赞
	 */
	private Integer isUserLike;
	/**
	 * redis查询-用户是否收藏
	 */
	private Integer isUserFavorite;
	/**
	 * 统计字段-按商品纬度统计后同商品的分享ID集合
	 */
	private String shareIds;
	
	public Long getShareUserId() {
		return shareUserId;
	}
	public void setShareUserId(Long shareUserId) {
		this.shareUserId = shareUserId;
	}
	public String getWxOpenId() {
		return wxOpenId;
	}
	public void setWxOpenId(String wxOpenId) {
		this.wxOpenId = wxOpenId;
	}
	public String getWxHeadImage() {
		return wxHeadImage;
	}
	public void setWxHeadImage(String wxHeadImage) {
		this.wxHeadImage = wxHeadImage;
	}
	public Integer getShareType() {
		return shareType;
	}
	public void setShareType(Integer shareType) {
		this.shareType = shareType;
	}
	public Long getSharedProductId() {
		return sharedProductId;
	}
	public void setSharedProductId(Long sharedProductId) {
		this.sharedProductId = sharedProductId;
	}
	public Long getSharedModuleId() {
		return sharedModuleId;
	}
	public void setSharedModuleId(Long sharedModuleId) {
		this.sharedModuleId = sharedModuleId;
	}
	public String getShareTitle() {
		return shareTitle;
	}
	public void setShareTitle(String shareTitle) {
		this.shareTitle = shareTitle;
	}
	public String getProductCode() {
		return productCode;
	}
	public void setProductCode(String productCode) {
		this.productCode = productCode;
	}
	public String getProductCategoryName() {
		return productCategoryName;
	}
	public void setProductCategoryName(String productCategoryName) {
		this.productCategoryName = productCategoryName;
	}
	public String getSharedProductImagePath() {
		return sharedProductImagePath;
	}
	public void setSharedProductImagePath(String sharedProductImagePath) {
		this.sharedProductImagePath = sharedProductImagePath;
	}
	public String getShareUrl() {
		return shareUrl;
	}
	public void setShareUrl(String shareUrl) {
		this.shareUrl = shareUrl;
	}
	public Integer getShareStatus() {
		return shareStatus;
	}
	public void setShareStatus(Integer shareStatus) {
		this.shareStatus = shareStatus;
	}
	public String getShareDesc() {
		return shareDesc;
	}
	public void setShareDesc(String shareDesc) {
		this.shareDesc = shareDesc;
	}
	public String getShareDataUrl() {
		return shareDataUrl;
	}
	public void setShareDataUrl(String shareDataUrl) {
		this.shareDataUrl = shareDataUrl;
	}
	public Date getShareTime() {
		return ShareTime;
	}
	public void setShareTime(Date shareTime) {
		ShareTime = shareTime;
	}
	public String getReferralCode() {
		return referralCode;
	}
	public void setReferralCode(String referralCode) {
		this.referralCode = referralCode;
	}
	public String getUuid() {
		return uuid;
	}
	public void setUuid(String uuid) {
		this.uuid = uuid;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	public Long getCommentQuantity() {
		return commentQuantity;
	}
	public void setCommentQuantity(Long commentQuantity) {
		this.commentQuantity = commentQuantity;
	}
	public Long getLikeQuantity() {
		return likeQuantity;
	}
	public void setLikeQuantity(Long likeQuantity) {
		this.likeQuantity = likeQuantity;
	}
	public Long getFavoriteQuantity() {
		return favoriteQuantity;
	}
	public void setFavoriteQuantity(Long favoriteQuantity) {
		this.favoriteQuantity = favoriteQuantity;
	}
	public Long getShareQuantity() {
		return shareQuantity;
	}
	public void setShareQuantity(Long shareQuantity) {
		this.shareQuantity = shareQuantity;
	}
	public Long getViewQuantity() {
		return viewQuantity;
	}
	public void setViewQuantity(Long viewQuantity) {
		this.viewQuantity = viewQuantity;
	}
	public Long getUvViewQuantity() {
		return uvViewQuantity;
	}
	public void setUvViewQuantity(Long uvViewQuantity) {
		this.uvViewQuantity = uvViewQuantity;
	}
	public Long getShareOrderNum() {
		return shareOrderNum;
	}
	public void setShareOrderNum(Long shareOrderNum) {
		this.shareOrderNum = shareOrderNum;
	}
	public BigDecimal getShareTotalMoney() {
		return shareTotalMoney;
	}
	public void setShareTotalMoney(BigDecimal shareTotalMoney) {
		this.shareTotalMoney = shareTotalMoney;
	}
	public Long getRegisterQuantity() {
		return registerQuantity;
	}
	public void setRegisterQuantity(Long registerQuantity) {
		this.registerQuantity = registerQuantity;
	}
	public Map<String, Object> getExtraInfo() {
		return extraInfo;
	}
	public void setExtraInfo(Map<String, Object> extraInfo) {
		this.extraInfo = extraInfo;
	}
	public Integer getIsUserLike() {
		return isUserLike;
	}
	public void setIsUserLike(Integer isUserLike) {
		this.isUserLike = isUserLike;
	}
	public Integer getIsUserFavorite() {
		return isUserFavorite;
	}
	public void setIsUserFavorite(Integer isUserFavorite) {
		this.isUserFavorite = isUserFavorite;
	}
	public String getShareIds() {
		return shareIds;
	}
	public void setShareIds(String shareIds) {
		this.shareIds = shareIds;
	}
	public List<String> getShareIdList(){
		if (StringUtil.isNotNull(shareIds)) {
			return Lists.newArrayList(shareIds.split(","));
		}
		return new ArrayList<String>();
	}
}
